f469406b072cf23a1a7ff8265dd1e6dbcc96bc01,src/toniarts/openkeeper/world/creature/pathfinding/MapIndexedGraph.java,MapIndexedGraph,getConnections,#TileData#,66
Before Change
// No diagonal movement
Array<Connection<TileData>> connections = new Array<>(4);
addIfValidCoordinate(tile, tile.getX(), tile.getY() - 1, connections); // North
addIfValidCoordinate(tile, tile.getX() + 1, tile.getY(), connections); // East
addIfValidCoordinate(tile, tile.getX(), tile.getY() + 1, connections); // South
addIfValidCoordinate(tile, tile.getX() - 1, tile.getY(), connections); // West
return connections;
After Change
boolean valids[] = new boolean[4];
valids[0] = addIfValidCoordinate(tile, tile.getX(), tile.getY() - 1, connections); // North
valids[1] = addIfValidCoordinate(tile, tile.getX() + 1, tile.getY(), connections); // East
valids[2] = addIfValidCoordinate(tile, tile.getX(), tile.getY() + 1, connections); // South
valids[3] = addIfValidCoordinate(tile, tile.getX() - 1, tile.getY(), connections); // West
if (valids[0] && valids[1]) { // North-East
addIfValidCoordinate(tile, tile.getX() + 1, tile.getY() - 1, connections);
}
if (valids[0] && valids[3]) { // North-West
addIfValidCoordinate(tile, tile.getX() - 1, tile.getY() - 1, connections);
}
if (valids[2] && valids[1]) { // South-East
addIfValidCoordinate(tile, tile.getX() + 1, tile.getY() + 1, connections);
}
if (valids[2] && valids[3]) { // South-West
addIfValidCoordinate(tile, tile.getX() - 1, tile.getY() + 1, connections);
}
return connections;